Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Динамічні структури даних

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра інформаційних систем та мереж

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра інформаційних систем та мереж Лабораторна робота №11 на тему Динамічні структури даних Львів 2008 Мета роботи: Вивчити способи створення динамічних структур даних (списків, стеків, дерев, ...) та виконання операцій над ними. 1. Ввести з клавіатури послідовність цілих чисел без знаку та записати у відповідне бінарне дерево їх двійкові коди. Згенерувати ціле випадкове число без знаку та, використовуючи дерево, знайти його двійковий код або вивести повідомлення про відсутність числа у дереві. Текст програми: 1) #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #define n 10 struct ttree { char *data; struct ttree *left; struct ttree *right; }; char *bina(int a); struct ttree *addtotree(struct ttree *head); void printtree(struct ttree *head); int findtr(struct ttree *head); char *x; void main() { int i,a; struct ttree *head; randomize(); head=0; for(i=0;i<n;i++) { scanf("%d",&a); x=bina(a); head=addtotree(head); } a=random(20); x=bina(a); printtree(head); if (findtr(head)) printf("\n\nznajdeno:\n%s",x); else printf("\n\nneznajdeno:\n%s",x); getch(); } char *bina(int a) { int i; char *b; b=(char *)calloc(9,1); b[8]=0; for(i=7;i>=0;i--,a/=2) b[i]=a%2+'0'; return b; } struct ttree *addtotree(struct ttree *head) { if(!head) { head=(struct ttree *)malloc(sizeof(struct ttree)); head->left=0; head->right=0; head->data=x; } else { if(strcmp(head->data,x)<0) head->right=addtotree(head->right); if(strcmp(head->data,x)>0) head->left=addtotree(head->left); } return head; } void printtree(struct ttree *head) { if(head != 0) { printtree(head->left); puts(head->data); printtree(head->right); } } int findtr(struct ttree *head) {int a=1; if(!head) return 0; if(strcmp(head->data,x)>0) a=findtr(head->left); if(strcmp(head->data,x)<0) a=findtr(head->right); return a; } Відлагодження програми : 
Антиботан аватар за замовчуванням

30.11.2012 00:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини